Fix the error of translation from int remapping table entry(IRTE) to
MSI msg. This error may write wrong IRTE back to the VTd hardware, and
block physical interrupts.
Signed-Off-By: Zhai Edwin <edwin.zhai@intel.com>
MSI_ADDR_DESTMODE_LOGIC) |
((iremap_entry->lo.dlm != dest_LowestPrio) ?
MSI_ADDR_REDIRECTION_CPU:
- MSI_ADDR_REDIRECTION_LOWPRI) |
- iremap_entry->lo.dst >> 8;
+ MSI_ADDR_REDIRECTION_LOWPRI);
+ if ( x2apic_enabled )
+ msg->dest32 = iremap_entry->lo.dst;
+ else
+ msg->address_lo |=
+ ((iremap_entry->lo.dst >> 8) & 0xff ) << MSI_ADDR_DEST_ID_SHIFT;
msg->data =
MSI_DATA_TRIGGER_EDGE |